約 1,706,474 件
https://w.atwiki.jp/nkym_memo/pages/36.html
バッファ テキストを編集する単位 Emacsではファイルを開くとそのファイルはバッファに格納される バッファの変更状態 モードライン上のバッファ名の左側の表示で確認可 「--」 バッファ未変更 「**」 バッファ変更済み 「%%」 読み込み専用バッファ 「%*」 読み込み専用バッファが変更済み バッファ操作のキーバインド キーバインド 説明 コマンド名 C-x C-f ファイルを開く find-file C-x b バッファを切り替える switch-to-buffer C-x k バッファを削除する kill-buffer C-x C-b バッファの一覧を表示 list-buffers C-x C-s 保存 save-buffer C-x s すべて保存 save-some-buffers C-x i 取り込み(カーソルにファイルの内容を挿入) insert-file C-x C-v 現在のバッファを閉じて、別のファイルを開く find-alternate-file C-x C-w 別名で保存 write-file バッファで取り込んでいるファイルの名前を変更 set-visited-file-name 最近使ったばかりのファイルを開く(recentf-ext.el) 最近開いたファイルを一覧をバッファで表示する。先頭10ファイルは数字を入力することで直接開くことができる。それ以外はポイントを移動してRETで選択。 ;;; install-elisp-from-emacswiki recentf-ext.el (setq recentf-max-saved-items 3000) ;; 最近使ったファイルに加えないファイルを正規表現で指定する (setq recentf-exclude '("/TAGS$" "/var/tmp/")) (require 'recentf-ext) ;; f8をショートカットキーに (global-set-key [f8] 'recentf-open-files) ウィンドウ操作 キーバインド 説明 コマンド C-x 2 ウィンドウを上下に分割 split-window-vertically C-x 3 ウィンドウを左右に分割 split-window-horizontally C-x 1 分割の解除 delete-other-windows C-x 0 選択されたウィンドウの消去 delete-window C-x o 次のウィンドウを選択・移動 other-window C-x 4 b バッファ名 別のウィンドウでバッファを選択 switch-to-buffer-other-window C-x 4 f 別のウィンドウでファイルを開く find-file-other-window C-x 4 r 別のウィンドウでファイルを読み込み専用で開く find-file-read-only-ohter-window ウィンドウを左右分割する(follow-mode) C-x 3(split-window-horizontally)で左右分割した状態で 溢れた内容を右につなぐ M-x follow-mode ウィンドウを3分割する C-+で幅を揃えられるので、1画面の状態から以下のようなコマンドで3分割できる。 C-x 3 C-x 3 C-x + フレーム キーバインド 説明 コマンド C-x 5 2 新しいフレームの作成 make-frame C-x 5 0 現在のフレームの消去 delete-frame C-x 5 1 他のすべてのフレームの消去 delete-other-frames C-x 5 o 別のフレームに移動 other-frame C-x 5 b バッファ名 新しいフレームでバッファを選択 switch-to-buffer-other-frame C-x 5 f ファイル名 新しいフレームでファイルを開く find-file-other-window C-x 5 r ファイル名 新しいフレームでファイルを読み込み専用で開く find-file-read-only-other-window フルスクリーン(fullscreen.el) F11でフルスクリーンを切り替え M-x install-elisp-from-emacswiki fullscreen.el .emacsに追加 (require fullscreen) 色の変更 現在行の背景色 (set-face-background hl-line "DarkSeaGreen1") 色の一覧 M-x list-colors-display 画面の色を変える http //homepage.mac.com/zenitani/elisp-j.html#color 色名一覧 http //life.a.la9.jp/hp/color/rgb-tab.html http //web.njit.edu/~kevin/rgb.html 参考文献 Emacsテクニックバイブル〜作業効率をカイゼンする200の技〜(るびきち,2010,技術評論社) Emacs辞典 Emacs Emacs Lisp 操作・カスタマイズリファレンス(佐藤竜一,2006,翔泳社) 便利なツール Emacsらくらく入門(藤原誠,2004,技術評論社) 参考URL EmacsLisp Tips(Seiji Zenitani) http //homepage.mac.com/zenitani/elisp-j.html
https://w.atwiki.jp/dtmer/pages/192.html
Digital Versatile Discの略。 CDと同様に光ディスクの一つであり、デジタルデータを記録する ための媒体。 記録容量としては「4.7GB,8.5GB,9.6GB」がある。 音声規格としては「DVD-Audio」が、動画規格としては 「DVD-Video」や「DVD-VR」がある。 メディアの種類 DVDメディアにはさらにデータ用のfor DATAと録画用のfor VIDEOがある。 VIDEO用は家庭用レコーダで使用でき、コピーガードに対応したものがある。 名称 説明 DVD-ROM 読み込み専用。CD-ROMと同様、工場でプレス加工で製造される。 DVD-R 一回追記型。CD-Rと同様、一回のみの書き込みとなる。 DVD+R 一回書き込み型。DVD-Rと同様。 DVD-R DL DVD-Rの二層式型。二層にすることで8.5GBの記録ができる DVD+R DL DVD+Rの二層式型。二層にすることで8.5GBの記録ができる DVD-RW 書き換え型。CD-RWと同様データの消去や書き換えができる。 DVD+RW 書き換え型。DVD-RWと同様。 DVD-RAM 書き換え型。DVD-RWよりも耐久性がある。片面タイプと両面タイプがある。
https://w.atwiki.jp/opengles/pages/40.html
Qualifier変数タイプ uniform ・アプリケーションからシェーダーに引き渡す変数・読み込み専用・名前空間が頂点シェーダとフラグメントシェーダの両方にまたがる。・ビルトインのuniform変数は、sampler2D, samplerCubeなど。 attribute ・頂点属性から読み込んだ値が設定される変数・シェーダー内では読み込み専用の定数として扱われる・gl_Vertex(位置)、gl_Normal(法線)、テクスチャ座標、色などのデータを格納・描画される頂点ごとに指定されるデータ・ユーザ独自の頂点ごとに変化するデータを用意し、シェーダに渡すことが可能・バーテックスシェーダでのみ利用可能 varying ・バーテックスシェーダからフラグメントシェーダに引き渡す変数・varyingと定義された変数の値は、フラグメントシェーダーの同名の変数に自動的に設定される・varying変数の定義はバーテックスシェーダとフラグメントシェーダの両方で行う
https://w.atwiki.jp/gbspec/pages/20.html
SO1、 SO2 の 2 つ出力端子にサウンドチャンネルが接続されます。 また、カートリッジの入力端子 Vin にも接続されます。 どちらの出力端子に接続することもできます。 ゲームボーイは 4 つの方法でサウンドを再生します。 スイープとエンベロープの付いた矩形波 エンベロープの付いた矩形波 波形 RAM 上の波形パターン エンベロープの付いたホワイトノイズ 4 つのサウンドはそれぞれ独立して制御でき、出力端子別にミックスできます。 サウンドレジスタに値をセットすることで、サウンドを再生します。 (スーパーゲームボーイでは 2.4% 高い周波数の音が鳴ります。) サウンドチャンネル 1 - 矩形波とスイープ FF10 - NR10 - チャンネル 1 スイープレジスタ (読み込み/書き込み可能) Bit 6-4 - スイープ時間 Bit 3 - スイープ増加/減少 0 加算 (周波数増加) 1 減算 (周波数減少) Bit 2-0 - スイープシフトの値 (n 0 - 7) スイープ時間 000 スイープオフ - 周波数変化なし 001 7.8 ms (1 / 128 Hz) 010 15.6 ms (2 / 128 Hz) 011 23.4 ms (3 / 128 Hz) 100 31.3 ms (4 / 128 Hz) 101 39.1 ms (5 / 128 Hz) 110 46.9 ms (6 / 128 Hz) 111 54.7 ms (7 / 128 Hz) FF11 - NR11 - チャンネル 1 サウンド長/波形パターンデューティ比 (読み込み/書き込み可能) Bit 7-6 - 波形パターンデューティ比 (読み込み/書き込み可能) Bit 5-0 - サウンド長の値 (書き込み専用) (t1 0 - 63) 波形デューティ比 00 12.5% ( _-------_-------_------- ) 01 25% ( __------__------__------ ) 10 50% ( ____----____----____---- ) (通常) 11 75% ( ______--______--______-- ) サウンド長 = (64 - t1) * (1 / 256) 秒 この値は NR14 のビット 6 がセットされた時にのみ使用されます。 FF12 - NR12 - チャンネル 1 音量エンベロープ (読み込み/書き込み可能) Bit 7-4 - エンベロープの初期音量 (0 - 0Fh) (0 = サウンドなし) Bit 3 - エンベロープの方向 (0 = 減少、 1 = 増加) Bit 2-0 - エンベロープスイープの数 (n 0 - 7) (0 の場合、エンベロープ操作を停止) 1 ステップの長さ = n * (1 / 64) 秒 FF13 - NR13 - チャンネル 1 周波数下位データ (書き込み専用) 11 ビットで表される周波数の、下位 8 ビットのデータ (x)。 上位 3 ビットは NR14 (FF14) で指定する。 FF14 - NR14 - チャンネル 1 周波数上位データ (読み込み/書き込み可能) Bit 7 - 初期化 (1 = サウンドのリスタート) (書き込み専用) Bit 6 - カウンタ/継続の切り替え (読み込み/書き込み可能) (1 = NR11 で指定された長さが経過した後、出力が停止される) Bit 2-0 - 周波数の上位 3 ビット (x) (書き込み専用) 周波数 = 131,072 / (2048 - x) Hz サウンドチャンネル 2 - 矩形波 このチャンネルは チャンネル 1 と同じように動作しますが、スイープレジスタがありません。 FF16 - NR21 - チャンネル 2 サウンド長/波形パターンデューティ比 (読み込み/書き込み可能) Bit 7-6 - 波形パターンデューティ比 (読み込み/書き込み可能) Bit 5-0 - サウンド長の値 (書き込み専用) (t1 0 - 63) 波形デューティ比 00 12.5% ( _-------_-------_------- ) 01 25% ( __------__------__------ ) 10 50% ( ____----____----____---- ) (通常) 11 75% ( ______--______--______-- ) サウンド長 = (64 - t1) * (1 / 256) 秒 この値は NR24 のビット 6 がセットされた時にのみ使用されます。 FF17 - NR22 - チャンネル 2 音量エンベロープ (読み込み/書き込み可能) Bit 7-4 - エンベロープの初期音量 (0 - 0Fh) (0 = サウンドなし) Bit 3 - エンベロープの方向 (0 = 減少、 1 = 増加) Bit 2-0 - エンベロープスイープの数 (n 0 - 7) (0 の場合、エンベロープ操作を停止) 1 ステップの長さ = n * (1 / 64) 秒 FF18 - NR23 - チャンネル 2 周波数下位データ (書き込み専用) 11 ビットで表される周波数の、下位 8 ビットのデータ (x)。 上位 3 ビットは NR24 (FF19) で指定する。 FF19 - NR24 - チャンネル 2 周波数上位データ (読み込み/書き込み可能) Bit 7 - 初期化 (1 = サウンドのリスタート) (書き込み専用) Bit 6 - カウンタ/継続の切り替え (読み込み/書き込み可能) (1 = NR21 で指定された長さが経過した後、出力が停止される) Bit 2-0 - 周波数の上位 3 ビット (x) (書き込み専用) 周波数 = 131,072 / (2048 - x) Hz サウンドチャンネル 3 - 波形出力 このチャンネルは、デジタルサウンドを出力するために使用されます。 サンプルバッファ (Wave RAM) は 32 個までの制限があります。 Wave RAM を矩形波で初期化すると、通常の音も出力することができます。 このチャンネルでは、音量エンベロープレジスタはありません。 FF1A - NR30 - チャンネル 3 サウンド on/off (読み込み/書き込み可能) Bit 7 - サウンドチャンネル 3 OFF (0 = 停止、 1 = 再生) (読み込み/書き込み可能) FF1B - NR31 - チャンネル 3 サウンド長 Bit 7-0 - サウンド長 (t1 0 - 255) サウンド長 = (256 - t1) * (1 / 256) 秒 この値は NR34 のビット 6 がセットされた時にのみ使用されます。 FF1C - NR32 - チャンネル 3 出力レベルの選択 (読み込み/書き込み可能) Bit 6-5 - 出力レベルの選択 (読み込み/書き込み可能) 出力レベルは次の値を取ります。 0 ミュート (サウンドなし) 1 音量 100% (波形パターン RAM 内の、そのままの波形を出力) 2 音量 50% (波形パターン RAM の値を、右に 1 回シフトした値を出力) 3 音量 25% (波形パターン RAM の値を、右に 2 回シフトした値を出力) FF1D - NR33 - チャンネル 3 周波数下位データ (書き込み専用) 11 ビットで表される周波数の、下位 8 ビットのデータ (x)。 FF1E - NR34 - チャンネル 3 周波数上位データ (読み込み/書き込み可能) Bit 7 - 初期化 (1 = サウンドのリスタート) (書き込み専用) Bit 6 - カウンタ/継続の切り替え (読み込み/書き込み可能) (1 = NR31 で指定された長さが経過した後、出力が停止される) Bit 2-0 - 周波数の上位 3 ビット (x) (書き込み専用) 周波数 = 4,194,304 / (64 * (2048 - x)) Hz = 65536 / (2048 - x) Hz FF30-FF3F - 波形パターン RAM 任意のサウンドデータを書き込みます。 この保存領域のデータは、 32 個の 4 ビットサンプルとして使用されます。 上位 4 ビットが先に再生されます。 サウンドチャンネル 4 - ノイズ このチャンネルは、ホワイトノイズを出力するために使用されます。 FF20 - NR41 - チャンネル 4 サウンド長 (読み込み/書き込み可能) Bit 5-0 - サウンド長データ (t1 0 - 63) サウンド長 = (64 - t1) * (1 / 256) 秒 長さの値 (t1) は、 NR44 のビット 6 がセットされた場合にのみ使用されます。 FF21 - NR42 - チャンネル 4 音量エンベロープ (読み込み/書き込み可能) Bit 7-4 - エンベロープの初期音量 (0 - 0Fh) (0 = サウンド無し) Bit 3 - エンベロープの方向 (0 = 減少、 1 = 増加) Bit 2-0 - エンベロープスイープの数 (n 0 - 7) (0 の場合、エンベロープ操作を停止) 1 ステップの長さ = n * (1 / 64) 秒 FF22 - NR43 - チャンネル 4 多項式のカウンタ (読み込み/書き込み可能) 指定された周波数で、音量がランダムに高くなったり、低くなったりします。 高い周波数を指定すると、ノイズがソフトになります。 ビット 3 がセットされた時、出力されるサウンドはより正常っぽくなります。 周波数によってはノイズというより、矩形波っぽくなります。 Bit 7-4 - クロック周波数のシフト値 (s) Bit 3 - カウンタステップ/幅 (0 = 15 ビット、 1 = 7 ビット) Bit 2-0 - 周波数を割る数 (r) 周波数 = 524,288 Hz / r / 2 ^ (s + 1) (r = 0 の場合、 r = 0.5 が代わりに使われます) FF23 - NR44 - チャンネル 4 カウンタ/連続; 初期化 (読み込み/書き込み可能) Bit 7 - 初期化 (1 = サウンドのリセット) (書き込み専用) Bit 6 - カウンタ/継続のいずれか選択 (読み込み/書き込み可能) (1 = NR41 で指定された長さが経過した後、出力が停止される) サウンドコントロールレジスタ FF24 - NR50 - チャンネルコントロール / ON-OFF / 音量 (読み込み/書き込み可能) 音量の値は左・右のサウンドの、マスターボリュームを指定します。 Bit 7 - SO2 端子への Vin 出力 (1 = 有効) Bit 6-4 - SO2 出力レベル (音量) (0 - 7) Bit 3 - SO1 端子への Vin 出力 (1 = 有効) Bit 2-0 - SO1 出力レベル (音量) (0 - 7) Vin 信号は、カートリッジのバスから受け取ります。 Vin 信号を使用することで、ゲームボーイ内部の 4 つのチャンネルに追加で、 外部ハードウェアからの 5 個目のチャンネルを提供することができます。 この機能は、おそらくどのゲームにも使用されていません。 FF25 - NR51 - サウンド出力端子の選択 (読み込み/書き込み可能) Bit 7 - サウンド 4 を SO2 端子へ出力 Bit 6 - サウンド 3 を SO2 端子へ出力 Bit 5 - サウンド 2 を SO2 端子へ出力 Bit 4 - サウンド 1 を SO2 端子へ出力 Bit 3 - サウンド 4 を SO1 端子へ出力 Bit 2 - サウンド 3 を SO1 端子へ出力 Bit 1 - サウンド 2 を SO1 端子へ出力 Bit 0 - サウンド 1 を SO1 端子へ出力 FF26 - NR52 - サウンド ON/OFF サウンドを使用しない場合、このレジスタへ 00h を書き込むことで、消費電力を 16% 減らすことができます。 ビット 7 をクリアしてサウンドを無効にすると、サウンドレジスタの値を全て破棄します。 また、サウンドを無効にすると、 FF26 以外へのサウンドレジスタにアクセスすることができなくなります。 Bit 7 - 全てのサウンドを ON/OFF (0 サウンド用の回路を停止する) (読み込み/書き込み可能) Bit 3 - サウンド 4 ON フラグ (読み込み専用) Bit 2 - サウンド 3 ON フラグ (読み込み専用) Bit 1 - サウンド 2 ON フラグ (読み込み専用) Bit 0 - サウンド 1 ON フラグ (読み込み専用) このレジスタのビット 0 - 3 は読み込み専用で、書き込みしても有効・無効を切り替えることができません。 これらのフラグは、 NR14 - NR44 のビット 7 にある、初期化フラグによってリスタートされた時に設定されます。 サウンド長分のサウンドが消失するまで、これらのフラグがセットされます (有効になっている場合)。 音量エンベロープが 0 になるまで減衰した時に、フラグが OFF になるわけではありません。
https://w.atwiki.jp/gbspec/pages/42.html
0000-3FFF - ROM バンク 00 (読み込み専用) この領域には、カートリッジ ROM の最初の 16 KB が常に接続されます。 4000-7FFF - ROM Bank 01-0F (読み込み専用) この領域には、カートリッジ ROM の 16 KB 以降の領域が接続されます。 最大 15 個のバンクが切り替え可能で、約 256 KB まで容量を増やすことができます。 A000-A1FF - MBC2 チップに内蔵された 512x4 ビット RAM (読み込み/書き込み可能) MBC2 は外部 RAM をサポートしていません。 代わりに、チップ内に 512x4 ビットの RAM が内蔵されています。 電源 OFF 時に内容を保存しておくため、外部バッテリーが必要になります。 データは 4 bit の値で構成されていて、バイト単位でアクセスする内の、下位 4 ビットのみが使用できます。 0000-1FFF - RAM 有効 (書き込み専用) アドレスの 2 バイトのうち、上位バイトのビット 0 の値が 0 の時、カートリッジ RAM の有効・無効を切り替えます。 例えば次のアドレスが、カートリッジ RAM の有効・無効の切り替えに使用できます。 0000 - 00FF 0200 - 02FF 0400 - 04FF ... 1E00 - 1EFF MBC2 RAM の有効・無効を切り替える時には、 0000 - 00FF を使用するのが良さそうです。 2000-3FFF - ROM バンク番号 (書き込み専用) 2000 - 3FFF の範囲に、 下位 4 ビットでバンクの値を書き込むことで、 4000 - 7FFF の範囲に出現する ROM バンクを選択することができます。 書き込む時のフォーマットは XXXXBBBB のようになります。 XXXX どんな値でも OK BBBB バンク番号 アドレスの 2 バイトのうち、上位バイトのビット 0 の値が 1 の時、ROM バンクの選択ができます。 例えば次のアドレスが、 ROM バンクの選択に使用できます。 2100 - 21FF 2300 - 23FF 2500 - 25FF ... 3F00 - 3FFF ROM バンクを切り替える時には、 2100 - 21FF を使用するのが良さそうです。
https://w.atwiki.jp/ramstorage/pages/35.html
ANS-9010/B, i-RAM BOX 外付けケース関連 ANS-9010/B, i-RAM BOX は5.25インチベイ規格の為デュプリケーターケース等に入れて外付け化する事が容易である。 デュプリケーターケース,エンクロージャーケース 5.25"光学ドライブを複数台積んで、CD-RやDVD-Rの大量複製を行う装置であるが、 そのケースが市場にデュプリケーターケースとして出回っている。 これを利用すれば、自分で工作等しなくても簡単にANS-9010/B,i-RAM BOXを外付けできる。 また、ほとんどのケースでクーリングFANが搭載されているので、特に冷却に気を使う必要も無い。 代表的なケースメーカーとして、Famous Computer Co.,Ltd. や、Chyang Fun Industry (CFI)等がある。 OEM元として多くのベンダーに供給しており、国内でも創朋やmaxserve等で購入可能。 ACARDのデュプリケーターケースも、Famous Computer製である。 2ちゃんスレにて報告のあるケース ACARD UFD-252B DECA CF-S40C 創朋 SO-4050BN 創朋 SO-4090BN センチュリー EXRD535 (ガワだけ再利用) ANSとの接続には、eSATAケーブルか、マルチレーンケーブルにて接続する事になります。 マルチレーン接続については、PROShopMAXSERVEの店長のこだわり技術紹介でも分かりやすく紹介されています。 マルチレーン接続時の注意点として、総ケーブル長に注意して下さい。 SATAは、規格では2mまでとなっています。あまり長いケーブルを使うと、ANSを見失ってRAIDを組んでいる場合アレイが壊れる事もあります。 参考URL maxserve blog 内 マルチレーン接続の長さについて
https://w.atwiki.jp/gbspec/pages/40.html
ゲームボーイカラーのレジスタ (I/O レジスタ) について説明します。 ゲームボーイカラーは、次の場所で通常のゲームボーイと違いがあります。 カラーパレット VRAM バンク VRAM DMA 転送 LCDC レジスタのビット 0 シリアル通信 ゲームボーイカラーの機能のアンロック ゲームボーイカラーのレジスタを使う場合、最初にカートリッジヘッダの 0143h を変更する必要があります。 白黒のゲームボーイでは、通常 80h が使われますが、ゲームボーイカラー専用ゲームの場合は C0h になります。 C0h 以外の値が入っていた場合は、白黒のゲームボーイと同様の動作になります。 ゲームボーイカラー (ゲームボーイアドバンス) の見分け方 起動直後に CPU の A レジスタの値を確認することで、ゲームボーイカラーを見分けることができます。 11h が入っていた場合は、本体がゲームボーイカラー (またはゲームボーイアドバンス) で、 ゲームボーイカラーの機能を使うことができます (上記のようにアンロックされている場合)。 A = 11h の時、 B レジスタのビット 0 を確認することで、 ゲームボーイカラーとゲームボーイアドバンスを見分けることができます。 ゲームボーイカラーでは、この値が 0 で、ゲームボーイアドバンスでは 1 です。 ゲームボーイカラーとゲームボーイアドバンスを見分けることで、 パレットデータの表示色を、機種ごとに入れ替える処理を入れることができます。 FF4D - KEY1 - ゲームボーイカラーモードのみ - 速度切り替え準備 Bit 7 現在の速度 (0 = 通常、 1 = 倍速) (読み込み専用) Bit 0 速度切り替え準備 (0 = 切り替えない、 1 = 切り替え準備) (読み込み/書き込み可能) ゲームボーイの速度を、通常・倍速で切り替える準備のために使用されます。 実際に速度を切り替える時は、 STOP 命令を実行します。 このレジスタのビット 0 が自動的に 0 になり、速度が切り替わります。 切り替える時の処理は、疑似コードで次のようになります。 IF KEY1_BIT7 DESIRED_SPEED THEN IE=00H ;(FFFF)=00h JOYP=30H ;(FF00)=30h KEY1=01H ;(FF4D)=01h STOP ;STOP ENDIF 電源 ON 時、ゲームボーイカラーは通常速度で動いています。 倍速モードは電力消費量が上がるため、可能な限り通常速度で動かす方が良いです。 また、速度の切り替え時、画面が少しの間ちらつきます。 倍速モードでは、次の要素が倍速で動くようになります。 CPU (2.10 MHz, 1 サイクル = 約 0.5 マイクロ秒) タイマー シリアルポート DMA 次の要素は速度が変わりません。 LCD コントローラ HDMA サウンドのタイミングと周波数 FF56 - RP - ゲームボーイカラーモードのみ - 赤外線通信ポート ゲームボーイカラーに内蔵された、赤外線ポートからデータをやり取りします。 データの読み込み時は、ビット 6 と 7 を 1 にし、ビット 0 を 0 にする必要があります。 データの通信後は、バッテリーの電力消費を抑えるため、このレジスタの値を 00h にしておきます。 Bit 0 データの書き込み (0 = LED オフ、 1 = LED オン) (読み込み/書き込み可能) Bit 1 データの読み込み (0 = IR 信号の受け取り, 1 = ノーマル) (読み込み専用) Bit 6-7 データの読み込み有効 (0 = 無効、 3 = 有効) (読み込み/書き込み可能) 赤外線のレシーバーが、環境に合わせてノーマルレベルの調整をするため、 LED ON の信号を長時間送信していると、その信号をノーマルレベルとしてしまいます。 例えば、 Philips のテレビのリモコンは 32 回の LED ON/OFF パルス (ON 10 マイクロ秒、 OFF 17.5 マイクロ秒) を送信します。 ゲームボーイアドバンスでは、赤外線ポートはありません。 FF70 - SVBK - ゲームボーイカラーモードのみ - WRAM バンク ゲームボーイカラーモードでは、 32 KB の内部 RAM が使用可能になります。 4 KB の、 8 つのバンクに分割されます。 バンク 0 は C000 - CFFF から、常に使用可能です。 バンク 1 から 7 は、アドレス空間 D000 - DFFF の部分で切り替えます。 Bit 0-2 WRAM バンクの選択 (読み込み/書き込み可能) 01h から 07h の値が書き込みできます (バンク 1 - 7 の選択)。 00h を書き込んだ場合は、バンク 1 が使われます。 ドキュメントに書かれていないレジスタ FF6C - Undocumented (FEh) - Bit 0 (読み込み/書き込み可能) - ゲームボーイカラーモード専用 FF72 - Undocumented (00h) - Bit 0-7 (読み込み/書き込み可能) FF73 - Undocumented (00h) - Bit 0-7 (読み込み/書き込み可能) FF74 - Undocumented (00h) - Bit 0-7 (読み込み/書き込み可能) - ゲームボーイカラーモード専用 FF75 - Undocumented (8Fh) - Bit 4-6 (読み込み/書き込み可能) FF76 - Undocumented (00h) - 常に 00h (読み込み専用) FF77 - Undocumented (00h) - 常に 00h (読み込み専用) これらは、ドキュメントに書かれていないゲームボーイカラーのレジスタで、用途は不明です。 括弧の中の数値は、初期値です。 FF6C と FF74 は、ゲームボーイカラーモードでない場合、常に FFh になります。
https://w.atwiki.jp/flashcs3/pages/18.html
setter、getter、ディフォルト値 さて、ようやっとできたScoreクラスだけど。何気に使いにくい部分があるよね。 var score Score = new Score( 9999 ); みたいに毎回上限決めなきゃなんないとことか、スコアの更新時に score.setScore( score.getScore()+300 ); みたいに書かなきゃいけないところとか・・・ なんか、毎回単純にプロパティ弄るほうが楽だったんじゃ・・・って気もしてくる。 そんなときには、setter / getter や、ディフォルト値ってものを使えば、クラスで関数にアクセスしたり初期化するときの手間を一気に軽減できたりするよ。 ディフォルト値 ディフォルト値ってのは、関数を呼び出すときに引数を省略できる仕組み。 省略した場合に、代わりにディフォルトの値を渡してやる仕組みのこと。 例えばScoreクラスは初期化の関数Scoreで毎回スコアの上限を決めていたけど、ディフォルト値を書いてしまえば、もうクラス作成時に毎回上限を決めなくても済むようになる。 public function Score( maxScore Number = 9999); 関数( 引数名 型 = ディフォルト値 ) という風に、引数宣言の後ろにイコール初期値を書いてしまえば、省略時にはその値で引数が渡されることになる。 また下記のように、複数の引数にディフォルト値を渡すことも可能。 myFunction( hoge1 Number = 9999, hoge2 Number = 1300); 1つだけ注意しなければならないのは、1つの関数にディフォルト値のある引数と、ディフォルト値のない引数が混在する場合。 この場合、ディフォルト値のない引数が、必ず手前にこなければならない。 myFunction( hoge Number, hoge2 Number = 999 ); みたいに。 setter / getter クラスを使いやすくする、もう1つの便利機能はgetter と setter。 getter/setter は「プロパティのフリ」をした関数を作る機能。 public function set score( value Number ) void{ setScore(value); } public function get score() Number{ return getScore(value); } みたいに、 set, get ってのがついた関数scoreを宣言すると、 var myScore Score = new Score(); myScore.score = myScore.score + 1 みたいに、関数scoreがプロパティとして使えるようになる! 値を設定するときにはset, 値を取得するときには get のほうが呼ばれることになる。 これで、普通に値が設定できるのに、自動でハイスコアの判定もしてくれるプロパティが作れるよ。 setter/getterの書き方 さてプロパティへの値の読み書きを、関数に転送してくれる setter/getterの書き方は以下の通り。 public function set プロパティ名( 値 型) void public function get プロパティ名() 型 setter / getter 両方用意するのが基本だけど、 片方だけしか作らなければ、読み込み専用、書き込み専用のプロパティが作れる。 totalFramesとか、bytesLoadedとかがちょうどそんな感じだよね。 いい忘れてたけど、最後についてる型は、値を返す場合に帰ってくる値の型を書く場所。 setの方は、値を返さないのでvoid。 getの方には、返す値の型を書いてやる。 プロパティの変更と同時に、色々な処理が行える。 値が変わった瞬間に表示をアップデートとか、イベントを発行とか、いままで値を変える→update()みたいのを呼ぶ、みたいにやってたことが一発でできるようになる。 必ずセットで実行されれば、呼び忘れもなくなるし便利。 読み込み専用、書き込み専用の変数が作れる。 上に書いたように、書き込み専用、読み込み専用の変数が作れるといいことがある。 それは事故が減るってこと。 プロパティに、特殊な処理を連動させたいとき(この場合ハイスコア計算)をしたいときは、setter / getter を使えばOKって感じ。 ほんとは細かいことも色々あるけど、まぁ大まかそんな感じ。
https://w.atwiki.jp/kurowal/pages/29.html
C言語関連のブックマーク C言語覚え書きファイル関連 不定数文字入力 C言語関連のブックマーク C言語覚え書き ファイル関連 ファイルのオープン FILE *p = fopen("ファイル名","wra"); wraはオープンモードで、wは書き込み専用、rは読み込み専用、aは追記専用 ファイルのクローズ fclose(p); ファイルを使用後はクローズしておく ファイル入力 fscanf(p,"書式", 変数名); 一行ごとに読み込み、変数に入れていく 標準入力と一緒って考えればいい ファイルの最後にはEOFがある ファイル出力 fprintf(p,"書式",変数名); 標準出力と一緒 不定数文字入力 不定数文字入力の終了条件 if(scanf("%d)", a) == EOF) これを無限ループ内に置き、成り立った時にbreakしてやる 入力の終了はCtrl+d
https://w.atwiki.jp/gbspec/pages/16.html
FF00 - P1/JOYP - ジョイパッド (読み込み/書き込み可能) ボタンと方向キーは合計で 8 個あり、 2x4 の行列形式になっています。 このレジスタに書き込むことで、ボタンと方向キーの選択ができ、それぞれビット 0 から 3 で読み込むことができます。 Bit 7 - 未使用 Bit 6 - 未使用 Bit 5 - P15 ボタンの選択 (0 = 選択) Bit 4 - P14 方向キーの選択 (0 = 選択) Bit 3 - P13 下キー または スタートボタン (0 = 押下状態) (読み込み専用) Bit 2 - P12 上キー または セレクトボタン (0 = 押下状態) (読み込み専用) Bit 1 - P11 左キー または B ボタン (0 = 押下状態) (読み込み専用) Bit 0 - P10 右キー または A ボタン (0 = 押下状態) (読み込み専用) 多くのゲームで、この値は何度か連続で読み込まれます。 (最初の読み込みで入力を安定させ、後で読み込んだ方の値が実際に使われます。) 通常、 P1 レジスタに 30h を書きこんでおき、 P15、 P14 の出力を High にしておきます。 ボタン (スタート、セレクト、 B、 A) の走査をするときは、 P15 の出力を Low にして、 P13 ~ P10 の High、 Low を読み取ります。 また、方向キー (上下左右) の走査をするときは、 P14 の出力を Low にして、 P13 ~ P10 の High、 Low を読み取ります。 押されていなければ High で、押されていれば Low になります。 機種判定 P1 レジスタに 03h を書きこんだ後、このレジスタの値を読み込むと機種の判定ができます。 Fxh ならゲームボーイ、 3xh ならスーパーゲームボーイです。 スーパーゲームボーイでの使用 スーパーゲームボーイのゲームでは、 FF00 のレジスタを別の用途で使用します。 スーパーファミコンへ、コマンドパケットを送信する 最大 4 つまでのコントローラに対応する INT 60 - ジョイパッド割り込み 上に書いた入力ラインが High から Low へ切り替わる時に、ジョイパッド割り込みが要求されます。 通常、キーが押された時に割り込みが発生します (ボタン、方向キーはビット 4 ・ 5 で有効になります)。 しかし通常、 1 回ボタンを押す・離す度に、 1 回以上の High から Low へのバウンスが発生します。 ジョイパッド割り込みの使用 ジョイパッド割り込みは、通常、使い道がありません。 ボタンと方向キーを同時に選択している時でも、すべてのキー入力を認識することができないし、 ボタンがすでに押されている時に、関連する方向キーが押されたとしても区別することができません。 キー入力割り込みは、 スタンバイ状態 (STOP 命令を実行した後の、低消費電力状態) を停止させる時にのみ、意味のある使い方ができます。 また、ジョイパッド割り込みはゲームボーイカラー本体と、ゲームボーイアドバンス本体では発生しません。 (ジョイパッドのキー入力で、 STOP 状態を停止させること自体はできます。) ジョイパッド・スキャン例 次にジョイパッド・スキャン例を示す。これは、C言語で記述してあり、GBDKでコンパイルすることができる。走査結果が、16進値で表示され、ジョイパッドを押すことによってその値が変化することを確かめられる。 #include stdio.h /* p1 レジスタ */ #define P1_REG (*(UBYTE *)0xFF00) void main() { UBYTE padA; UBYTE padB; UBYTE padC; while(TRUE){ // ボタンの走査 P1_REG = 0x10; // 出力端子p15をLowに設定 padA = P1_REG; // ちょっと待つ padA = P1_REG 0x0F; // 読み取り(下位4ビットのみ有効) // 十字キーの走査 P1_REG = 0x20; // 出力端子p14をLowに設定 padB = P1_REG; // ちょっと待つ padB = P1_REG 0x0F; // 読み取り(下位4ビットのみ有効) // ボタン、十字キーのごちゃ混ぜ走査 P1_REG = 0x00; // 出力端子P15,p14をLowに設定 padC = P1_REG; // ちょっと待つ padC = P1_REG 0x0F; // 読み取り(下位4ビットのみ有効) // 走査結果を表示 printf("p15 %x-p14 %x [%x]\n", keyA, keyB, keyC); P1_REG = 0x30; } } ジョイパッド関数 ▼ジョイパッド走査 構文 #include gb.h UBYTE joypad(void); 戻り値 ジョイパッドの走査値。以下の値の論理和が返される。 ■ジョイパッドの定義 J_START Start ボタン J_SELECT Select ボタン J_B B ボタン J_A A ボタン J_DOWN 下方向キー J_UP 上方向キー J_LEFT 左方向キー J_RIGHT 右方向キー 説明 押されているジョイパッドの走査結果を戻す。 関連項目 waitpad, waitpadup ▼ジョイパッド入力待ち 構文 #include gb.h UBYTE waitpad(UBYTE mask); 戻り値 ジョイパッドの走査値。joypad関数参照。 説明 maskで指定したジョイパッドのキー・ボタンが押下されるまで待つ。 関連項目 joypad, waitpadup ▼ジョイパッド リリース待ち 構文 #include gb.h UBYTE waitpadup(void); 戻り値 なし。 説明 ジョイパッドのキー・ボタンが離されるまで待つ。関数呼び出し前に押されていなければ、すぐに戻る。 関連項目 joypad, waitpad ■使用例: #include stdio.h #include gb.h void main() { int i; char s[8]; printf("Push Start button!\n"); // Startボタンの入力待ち waitpad(J_START); while(TRUE){ // ジョイパッド入力 i = joypad(); // 入力判断 if (i J_UP ) { s[0] = U ; } else { s[0] = - ; } if (i J_DOWN ) { s[1] = D ; } else { s[1] = - ; } if (i J_LEFT ) { s[2] = L ; } else { s[2] = - ; } if (i J_RIGHT) { s[3] = R ; } else { s[3] = - ; } s[4] = / ; if (i J_A ) { s[5] = A ; } else { s[5] = - ; } if (i J_B ) { s[6] = B ; } else { s[6] = - ; } s[7] = NULL; // 判定結果を表示 printf("%s\n", s); // Selectボタンが押されていれば、離されるまで待機 if (i J_SELECT) waitpadup(); } }